package com.agileboot.domain.app.user.db;


import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.Date;

/**
 * app用户表
 *
 * @author qqz
 * @description 由 qqz 创建
 * @since 2024-02-29 11:33:54
 */
@TableName("app_user")
@Getter
@Setter
public class AppUserEntity extends Model<AppUserEntity> {

    private static final long serialVersionUID = 1L;

    /**
     * 用户id
     */
    @NotNull(message = "[用户id]不能为空")
    @ApiModelProperty("用户id")
    @TableId(value = "user_id")
    private String userId;
    /**
     * 申请人ip地址
     */
    @Size(max = 100, message = "编码长度不能超过100")
    @ApiModelProperty("申请人ip地址")
    @Length(max = 100, message = "编码长度不能超过100")
    private String ip;

    /**
     * 姓名
     */
    @Size(max = 50, message = "编码长度不能超过50")
    @ApiModelProperty("姓名")
    @Length(max = 50, message = "编码长度不能超过50")
    private String name;

    /**
     * 手机号
     */
    @Size(max = 15, message = "编码长度不能超过15")
    @ApiModelProperty("手机号")
    @Length(max = 15, message = "编码长度不能超过15")
    private String phone;

    @ApiModelProperty("最后登录时间")
    @TableField("login_date")
    private Date loginDate;


    @ApiModelProperty("实名制状态")
    @TableField("authorized_state")
    private int authorizedState;

    /**
     * 密码
     */
    @Size(max = 100, message = "编码长度不能超过100")
    @ApiModelProperty("密码")
    @Length(max = 100, message = "编码长度不能超过100")
    private String password;
    /**
     * 更新时间
     */
    @ApiModelProperty("更新时间")
    private Date updateTime;
    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    private Date createTime;

    /**
     * 用户状态(0正常1停用)
     */
    @ApiModelProperty("用户状态(1正常 2禁用 3冻结)")
    private Integer status;


}